//560 Subarray Sum Equals K 
/*
给定一个数组，寻找和为 k 的连续区间个数

输入输出样例
	输入一个一维整数数组和一个整数值 k；输出一个整数，表示满足条件的连续区间个数

Input: nums = [1,1,1], k = 2
Output: 2
	
*/
int subarraySum(vector<int>& nums, int k) {
	int count = 0, psum = 0;
	unordered_map<int, int> hashmap;
	hashmap[0] = 1; // 初始化很重要
	for (int i : nums) {
		psum += i;
		count += hashmap[psum - k];
		++hashmap[psum];
	}
	return count;
}

//556
//225
//503
//217
//697
//594
//287
//313
//870
//307
